//package com.turman.plyopengl
//
//import android.content.Context
//import android.opengl.GLES20
//import android.opengl.GLSurfaceView
//import android.opengl.Matrix
//import com.turman.plyopengl.objects.Mallet
//import com.turman.plyopengl.objects.Table
//import com.turman.plyopengl.programs.ColorShaderProgram
//import com.turman.plyopengl.programs.TextShaderProgram
//import javax.microedition.khronos.egl.EGLConfig
//import javax.microedition.khronos.opengles.GL10
//
//class SampleRenderer2(private val context: Context):GLSurfaceView.Renderer {
//    /**
//     * 透视投影矩阵
//     */
//    private val projectionMatrix: FloatArray = FloatArray(16)
//
//    /**
//     * 模型矩阵
//     */
//    private val modelMatrix = FloatArray(16)
//
//    private lateinit var table: Table
//    private lateinit var mallet: Mallet
//
//    private lateinit var textureShaderProgram: TextShaderProgram
//    private lateinit var colorShaderProgram: ColorShaderProgram
//
//    private var texture: Int = 0
//
//    override fun onSurfaceCreated(gl: GL10?, config: EGLConfig?) {
//        // 设置Clear颜色
//        GLES20.glClearColor(0F, 0F, 0F, 0F)
//
//        table = Table()
//        mallet = Mallet()
//        textureShaderProgram = TextShaderProgram(context)
//        colorShaderProgram = ColorShaderProgram(context)
//
//        texture = context.loadTexture(R.drawable.air_hockey_surface)
//    }
//
//
//    override fun onSurfaceChanged(gl: GL10?, width: Int, height: Int) {
//        GLES20.glViewport(0, 0, width, height)
//        MatrixHelper.prespectiveM(
//            projectionMatrix,
//            55f,
//            width.toFloat() / height.toFloat(),
//            1f,
//            10f
//        )
//
//        //将模型矩阵设置为欸单位矩阵，然后沿着z轴平移量-2.5。
//        Matrix.setIdentityM(modelMatrix, 0)
//        //平移
//        Matrix.translateM(modelMatrix, 0, 0f, 0f, -2.5f)
//        //旋转,绕x轴旋转60
//        Matrix.rotateM(modelMatrix,0,-60f,1f,0f,0f)
//
//        //将模型矩阵和投影矩阵相乘获得最终的变换矩阵
//        val temp = FloatArray(16)
//        Matrix.multiplyMM(temp, 0, projectionMatrix, 0, modelMatrix, 0)
//        System.arraycopy(temp, 0, projectionMatrix, 0, temp.size)
//    }
//
//    override fun onDrawFrame(gl: GL10?) {
//        // 清除之前绘制的内容
//        GLES20.glClear(GLES20.GL_COLOR_BUFFER_BIT)
//
//        // 使用该程序
//        textureShaderProgram.useProgram()
//        // 赋值Uniform
//        textureShaderProgram.setUniforms(matrix = projectionMatrix, textureId = texture)
//        // 赋值Attribute
//        table.bindData(textureShaderProgram)
//        // 绘制
//        table.draw()
//
//        colorShaderProgram.useProgram()
//        colorShaderProgram.setUniforms(matrix = projectionMatrix)
//        mallet.bindData(colorShaderProgram)
//        mallet.draw()
//    }
//
//}